home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…tion Library 2 (Reseller) / Apple R&P Lib Reseller v2.0.iso / 2-Presentations / Apple Products / OASIS Stack 1.1 / OASIS Stack 1.1 / background_46202.txt < prev    next >
Text File  |  1989-07-21  |  26KB  |  1,034 lines

  1. -- background: 46202 from stack: in.1
  2. -- bmap block id: 46523
  3. -- flags: 4000
  4. -- background id: 0
  5. -- name: Builder
  6. ----- HyperTalk script -----
  7. ------------------------------------------------------------------------
  8. --
  9. --   Handlers for system messages
  10. --
  11. ------------------------------------------------------------------------
  12.  
  13. on openCard
  14.   global building,selectList
  15.   if building is the short ID of this card then
  16.     set hilite of background button "Add" to true
  17.   else
  18.     set hilite of background button "Add" to false
  19.   end if
  20.   -- Unhighlight buttons (may not be necessary anymore?)
  21.   repeat with n = 1 to the number of card buttons
  22.     set the hilite of card button n to false
  23.   end repeat
  24.   -- Set next phase, previous phase buttons
  25.   if the short name of next card is "Builder Guard" or the short name of this card is "Builder Guard" then
  26.     set the visible of background button "Next" to false
  27.   else
  28.     set the visible of background button "Next" to (field "Title" of next card) is field "Title"
  29.   end if
  30.   if the short name of prev card is "Builder Map" then
  31.     set the visible of background button "Prev" to false
  32.   else
  33.     set the visible of background button "Prev" to (field "Title" of prev card) is field "Title"
  34.   end if
  35.   -- Set next slice, previous slice buttons
  36.   set the visible of background button "Next Slice" to (field "Title" ‚↠last line of card field "Slices" of card "Builder Map")
  37.   set the visible of background button "Prev Slice" to (field "Title" ‚↠first line of card field "Slices" of card "Builder Map")
  38. end openCard
  39.  
  40.  
  41. on openBackground
  42.   global dragged, nuked
  43.   put false into dragged
  44.   put false into nuked
  45.   pass openBackground
  46. end openBackground
  47.  
  48. on closeCard
  49.   global selectList
  50.   put empty into selectList
  51. end closeCard
  52.  
  53. on newCard
  54.   global building, silent
  55.   get empty
  56.   if not silent then answer "A new slice, or a next phase of this one?" with "Slice" or "Phase"
  57.   if it is "Slice" or silent then
  58.     put "true" into card field "Changed" of card "Builder Map"
  59.     put the short ID of this card into building
  60.     set the hilight of background button "Add" to true
  61.     select char 1 of field "Title"
  62.   else
  63.     lock screen
  64.     doMenu "Delete Card"
  65.     go prev
  66.     if field "Order" is empty then put 1 into field "Order"
  67.     doMenu "Copy Card"
  68.     doMenu "Paste Card"
  69.     add 1 to field "Order"
  70.     put the short ID of this card into building
  71.     set the hilight of background button "Add" to true
  72.   end if
  73.   put false into silent
  74.   pass newCard
  75. end newCard
  76.  
  77. on deleteCard
  78.   global building
  79.   if not exists(building) then put empty into building
  80.   put "true" into card field "Changed" of card "Builder Map"
  81.   pass deleteCard
  82. end deleteCard
  83.  
  84. ------------------------------------------------------------------------
  85. --
  86. --   Handlers for mouse messages
  87. --
  88. ------------------------------------------------------------------------
  89.  
  90. on mouseDown
  91.   global oldCenter, delta, dragged, nuked -- for dragging
  92.   global lastClick -- for double clicking
  93.   global selectList -- for selecting
  94.  
  95.   -- detect double-clicks
  96.   put (the ticks - lastClick) < 110 and (the short ID of the target is in selectList) and not dragged into doubleClick
  97.  
  98.   put false into nuked
  99.   if the name of the target contains "card button" then
  100.     put false into dragged
  101.     put item 1 of the loc of the target into oldCenter
  102.  
  103.     -- main event dispatcher
  104.     if doubleClick then
  105.       push card
  106.       go to card ID (word 1 of the script of the target)
  107.     else
  108.       selectIt
  109.       if the optionKey is down then
  110.         deleteEm
  111.       end if
  112.     end if
  113.   else
  114.     -- click outside button; deselect
  115.     clearSelection
  116.   end if
  117.   put the ticks into lastClick
  118. end mouseDown
  119.  
  120. on mouseStillDown
  121.   global dragged, delta
  122.   if the name of the target contains "card button" then
  123.     if dragged then
  124.       get the loc of the target
  125.       put item 1 of the mouseLoc-delta into item 1 of it
  126.       put max(min(item 1 of it, the right of background button "limits"), the left of background button "limits") into item 1 of it
  127.       set the loc of the target to it
  128.     else
  129.       if abs(item 1 of the mouseLoc-item 1 of the clickLoc) > 2 then
  130.         put true into dragged
  131.         put item 1 of the mouseLoc-item 1 of the clickLoc into delta
  132.       end if
  133.     end if
  134.   end if
  135. end mouseStillDown
  136.  
  137. on mouseUp
  138.   global dragged,nuked,lastClick
  139.   if not nuked then
  140.     if the name of the target contains "card button" then
  141.       if dragged then
  142.         shiftEm
  143.         subtract 200 from lastClick
  144.       end if
  145.     end if
  146.   end if
  147. end mouseUp
  148.  
  149. ------------------------------------------------------------------------
  150. --
  151. --   Mouse actions:  select, double-click, drag, option-click
  152. --
  153. ------------------------------------------------------------------------
  154.  
  155. on selectIt
  156.   global selectList,lastClick
  157.   if the shiftKey is up then clearSelection
  158.   set the hilite of the target to true
  159.   put the short ID of the target & return before selectList
  160. end selectIt
  161.  
  162. on clearSelection
  163.   global selectList
  164.   repeat with n = 1 to the number of lines of selectList
  165.     set the hilite of card button ID (line n of selectList) to false
  166.   end repeat
  167.   put empty into selectList
  168. end clearSelection
  169.  
  170. on deleteEm
  171.   global selectList, nuked
  172.   lock screen
  173.   choose button tool
  174.   repeat with n = 1 to the number of lines of selectList
  175.     put line n of selectList into itsID
  176.     put layer(field "Layer" of card ID (word 1 of the script of button ID itsID)) into itsLayer
  177.     put item 1 of the loc of card button ID itsID into itsCenter
  178.     moveIcon itsID,itsLayer,itsCenter,0
  179.     select card button ID itsID
  180.     doMenu "Cut Button"
  181.   end repeat
  182.   put empty into selectList
  183.   put true into nuked -- to eliminate an error on mouseUp
  184.   choose browse tool
  185. end deleteEm
  186.  
  187. on shiftEm
  188.   global selectList,oldCenter,delta
  189.   lock screen
  190.   repeat with n = 1 to the number of lines of selectList
  191.     put (line n of selectList) into itsID
  192.     put layer(field "Layer" of card ID (word 1 of the script of card button ID itsID)) into itsLayer
  193.     put item 1 of the loc of card button ID itsID into itsCenter
  194.     if the short ID of the target is not itsID then
  195.       -- Move the flotilla
  196.       set the loc of card button ID itsID to (item 1 of the loc of card button ID itsID)+delta,item 2 of the loc of card button ID itsID
  197.       moveIcon itsID,itsLayer,itsCenter,itsCenter+delta
  198.     else
  199.       -- Move the dragged icon
  200.       moveIcon itsID,itsLayer,oldCenter,itsCenter
  201.     end if
  202.   end repeat
  203. end shiftEm
  204.  
  205. ------------------------------------------------------------------------
  206. --
  207. --   Handlers for my messages
  208. --
  209. ------------------------------------------------------------------------
  210.  
  211. on moveIcon itsID,itsLayer,oldCenter,newCenter
  212.   -- Adjusts the centers and buttons fields when a button moves.
  213.   -- If newCenter is 0, deletes it.
  214.   --
  215.   -- Find old center and remove
  216.   repeat with n = 1 to the number of items in line itsLayer of field "Centers"
  217.     if item n of line itsLayer of field "Centers" is oldCenter then
  218.       delete item n of line itsLayer of field "Buttons"
  219.       delete item n of line itsLayer of field "Centers"
  220.       exit repeat
  221.     end if
  222.   end repeat
  223.   if newCenter is not 0 then
  224.     -- Insert new center in proper order.
  225.     put the number of items in line itsLayer of field "Centers" into count
  226.     repeat with n = 1 to count+1
  227.       if n = count+1 then
  228.         put the right of background button "Limits" into r
  229.       else
  230.         put item n of line itsLayer of field "Centers" into r
  231.       end if
  232.       if r > newCenter then
  233.         put itsID & "," before item n of line itsLayer of field "Buttons"
  234.         put newCenter & "," before item n of line itsLayer of field "Centers"
  235.         exit repeat
  236.       end if
  237.     end repeat
  238.   end if
  239. end moveIcon
  240.  
  241. on placeIcon layer,backlink
  242.   -- Copy the clicked button from this card to next available spot
  243.   -- on this card.  Put the backlink and related item
  244.   -- list into the button‚Äôs script, and draw linkage lines to other
  245.   -- buttons on the card.
  246.   --
  247.   -- layer is 1= application, 2=desktop, etc.
  248.   -- backlink is ID of calling card
  249.   --
  250.   -- Field "centers" is five lines, one per layer.  Each line is
  251.   -- an itemlist of the centers of icons on that line, always in order.
  252.   -- Field "Buttons" is five lines, one per layer.  Each line is
  253.   -- an itemlist of the button numbers of the buttons on that line.
  254.  
  255.   global selectList
  256.   lock screen
  257.  
  258.   -- Build an itemlist of the IDs of the related cards.
  259.   put empty into relList
  260.   repeat with n = 1 to the number of lines of field "Related Module" of card ID backLink
  261.     if n > 1 then put "," after relList
  262.     put line n of field "Related Module" of card ID backLink after relList
  263.   end repeat
  264.  
  265.   -- find the largest open spot
  266.   put the number of items in line layer of field "Centers" into count
  267.   put 0 into maxSpan
  268.   repeat with n = 1 to count+1
  269.     if n is 1 then
  270.       put the left of background button "limits" into gapLeft
  271.     else
  272.       put (item n-1 of line layer of field "Centers") into gapLeft
  273.     end if
  274.     if n is count+1 then
  275.       put the right of background button "Limits" into gapRight
  276.     else
  277.       put (item n of line layer of field "Centers") into gapRight
  278.     end if
  279.     put gapRight-gapLeft into span
  280.     put gapleft+(span div 2) into midl
  281.  
  282.     if span > maxSpan then
  283.       put span into maxSpan
  284.       put n into index
  285.       put midl into theMiddle
  286.     end if
  287.   end repeat
  288.   -- At this point, theMiddle is the horizontal position and index is the
  289.   -- count of icons to the new one's right.
  290.  
  291.   -- Paste the new button.
  292.   doMenu "Paste Button"
  293.   choose browse tool
  294.   put the number of card buttons into m
  295.   set the loc of button m to theMiddle,(item 2 of the loc of background button layer)
  296.   set the autoHilite of button m to false
  297.   get empty
  298.   put backlink into word 1 of it
  299.   put relList into line 2 of it
  300.   set the script of button m to it
  301.   set hilite of button m to true
  302.   put the short ID of button m into selectList
  303.   unlock screen
  304.  
  305.   -- Adjust the Centers and Buttons fields
  306.   put (item 1 of the loc of button m) & "," before item index of line layer of field "Centers"
  307.   put the short ID of card button m & "," before item index of line layer of field "Buttons"
  308.  
  309.   -- Draw lines to related modules.
  310.   choose line tool
  311.   set lineSize to 1
  312.   repeat with n = 1 to the number of card buttons
  313.     if (word 1 of the script of card button n) is in relList then
  314.       drag from the loc of card button n to the loc of card button m
  315.     end if
  316.   end repeat
  317.   choose browse tool
  318. end placeIcon
  319.  
  320. ------------------------------------------------------------------------
  321. --
  322. --   Utility functions and sort orders
  323. --
  324. ------------------------------------------------------------------------
  325.  
  326. function sortOrder
  327. return "HA" && field "title" && field "order"
  328. end sortOrder
  329.  
  330.  
  331.  
  332.  
  333.  
  334. -- part 4 (field)
  335. -- low flags: 80
  336. -- high flags: 0000
  337. -- rect: left=103 top=15 right=266 bottom=449
  338. -- title width / last selected line: 0
  339. -- icon id / first selected line: 0 / 0
  340. -- text alignment: 0
  341. -- font id: 3
  342. -- text size: 12
  343. -- style flags: 0
  344. -- line height: 52
  345. -- part name: Centers
  346.  
  347.  
  348. -- part 12 (field)
  349. -- low flags: 80
  350. -- high flags: 0000
  351. -- rect: left=350 top=57 right=311 bottom=428
  352. -- title width / last selected line: 0
  353. -- icon id / first selected line: 0 / 0
  354. -- text alignment: 0
  355. -- font id: 3
  356. -- text size: 12
  357. -- style flags: 0
  358. -- line height: 52
  359. -- part name: Buttons
  360.  
  361.  
  362. -- part 16 (field)
  363. -- low flags: 80
  364. -- high flags: 0000
  365. -- rect: left=23 top=57 right=339 bottom=94
  366. -- title width / last selected line: 0
  367. -- icon id / first selected line: 0 / 0
  368. -- text alignment: 0
  369. -- font id: 3
  370. -- text size: 12
  371. -- style flags: 0
  372. -- line height: 48
  373. -- part name: 
  374.  
  375.  
  376. -- part 17 (field)
  377. -- low flags: 80
  378. -- high flags: 0000
  379. -- rect: left=422 top=57 right=339 bottom=493
  380. -- title width / last selected line: 0
  381. -- icon id / first selected line: 0 / 0
  382. -- text alignment: 0
  383. -- font id: 3
  384. -- text size: 12
  385. -- style flags: 0
  386. -- line height: 48
  387. -- part name: 
  388.  
  389.  
  390. -- part 1 (field)
  391. -- low flags: 01
  392. -- high flags: 0000
  393. -- rect: left=126 top=7 right=41 bottom=435
  394. -- title width / last selected line: 0
  395. -- icon id / first selected line: 0 / 0
  396. -- text alignment: 0
  397. -- font id: 156
  398. -- text size: 24
  399. -- style flags: 0
  400. -- line height: 32
  401. -- part name: Title
  402. ----- HyperTalk script -----
  403. on closeField
  404.   put "True" into card field "Changed" of card "Builder Map"
  405.   pass CloseField
  406. end CloseField
  407.  
  408.  
  409. -- part 36 (button)
  410. -- low flags: 00
  411. -- high flags: 0000
  412. -- rect: left=15 top=52 right=101 bottom=507
  413. -- title width / last selected line: 0
  414. -- icon id / first selected line: 0 / 0
  415. -- text alignment: 1
  416. -- font id: 0
  417. -- text size: 12
  418. -- style flags: 0
  419. -- line height: 16
  420. -- part name: Application
  421.  
  422.  
  423. -- part 37 (button)
  424. -- low flags: 00
  425. -- high flags: 0000
  426. -- rect: left=15 top=103 right=153 bottom=507
  427. -- title width / last selected line: 0
  428. -- icon id / first selected line: 0 / 0
  429. -- text alignment: 1
  430. -- font id: 0
  431. -- text size: 12
  432. -- style flags: 0
  433. -- line height: 16
  434. -- part name: Desktop
  435.  
  436.  
  437. -- part 38 (button)
  438. -- low flags: 00
  439. -- high flags: 0000
  440. -- rect: left=15 top=155 right=205 bottom=507
  441. -- title width / last selected line: 0
  442. -- icon id / first selected line: 0 / 0
  443. -- text alignment: 1
  444. -- font id: 0
  445. -- text size: 12
  446. -- style flags: 0
  447. -- line height: 16
  448. -- part name: Toolbox
  449.  
  450.  
  451. -- part 39 (button)
  452. -- low flags: 00
  453. -- high flags: 0000
  454. -- rect: left=15 top=207 right=257 bottom=507
  455. -- title width / last selected line: 0
  456. -- icon id / first selected line: 0 / 0
  457. -- text alignment: 1
  458. -- font id: 0
  459. -- text size: 12
  460. -- style flags: 0
  461. -- line height: 16
  462. -- part name: Operating System
  463.  
  464.  
  465. -- part 40 (button)
  466. -- low flags: 00
  467. -- high flags: 0000
  468. -- rect: left=15 top=259 right=309 bottom=507
  469. -- title width / last selected line: 0
  470. -- icon id / first selected line: 0 / 0
  471. -- text alignment: 1
  472. -- font id: 0
  473. -- text size: 12
  474. -- style flags: 0
  475. -- line height: 16
  476. -- part name: Hardware
  477.  
  478.  
  479. -- part 18 (button)
  480. -- low flags: 80
  481. -- high flags: 8000
  482. -- rect: left=19 top=61 right=111 bottom=98
  483. -- title width / last selected line: 0
  484. -- icon id / first selected line: 0 / 0
  485. -- text alignment: 1
  486. -- font id: 0
  487. -- text size: 12
  488. -- style flags: 0
  489. -- line height: 16
  490. -- part name: Sample
  491. ----- HyperTalk script -----
  492.  
  493.  
  494.  
  495.  
  496.  
  497. -- part 35 (button)
  498. -- low flags: 00
  499. -- high flags: 0000
  500. -- rect: left=15 top=52 right=309 bottom=507
  501. -- title width / last selected line: 0
  502. -- icon id / first selected line: 0 / 0
  503. -- text alignment: 1
  504. -- font id: 0
  505. -- text size: 12
  506. -- style flags: 0
  507. -- line height: 16
  508. -- part name: Limits
  509.  
  510.  
  511. -- part 19 (button)
  512. -- low flags: 80
  513. -- high flags: A002
  514. -- rect: left=142 top=320 right=338 bottom=210
  515. -- title width / last selected line: 0
  516. -- icon id / first selected line: 0 / 0
  517. -- text alignment: 1
  518. -- font id: 0
  519. -- text size: 12
  520. -- style flags: 0
  521. -- line height: 16
  522. -- part name: Redraw
  523. ----- HyperTalk script -----
  524. on mouseDown
  525. end mouseDown
  526.  
  527. on mouseStillDown
  528. end mouseStillDown
  529.  
  530. on mouseUp
  531.   repeat with j = 1 to the number of buttons
  532.     repeat with k = 1 to j-1
  533.       if abs(item 1 of the loc of button j - item 1 of the loc of button k) < 10 then
  534.         moveIcon (the short name of button j), (layer(field "Layer" of card ID (word 1 of the script of button j))), item 1 of the loc of button j, item 1 of the loc of button k
  535.         set the loc of button j to (item 1 of the loc of button k), item 2 of the loc of button j
  536.       end if
  537.     end repeat
  538.   end repeat
  539.   choose line tool
  540.   doMenu "Select All"
  541.   doMenu "Clear Picture"
  542.   set lineSize to 1
  543.   repeat with n = 1 to the number of card buttons
  544.     repeat with m = 1 to the number of card buttons
  545.       if word 1 of the script of card button n is in line 2 of the script of card button m then
  546.         drag from the loc of card button n to the loc of card button m
  547.       end if
  548.     end repeat
  549.   end repeat
  550.   choose browse tool
  551. end mouseUp
  552.  
  553.  
  554.  
  555. -- part 20 (button)
  556. -- low flags: 80
  557. -- high flags: 2000
  558. -- rect: left=477 top=9 right=42 bottom=512
  559. -- title width / last selected line: 0
  560. -- icon id / first selected line: 7856 / 7856
  561. -- text alignment: 1
  562. -- font id: 0
  563. -- text size: 12
  564. -- style flags: 0
  565. -- line height: 16
  566. -- part name: Next
  567. ----- HyperTalk script -----
  568. on mouseUp
  569.   if the commandKey is up then
  570.     -- do regular dissolve or wipe
  571.     if (field "Title" of next card of this background) is field "Title" of this card then
  572.       visual effect dissolve
  573.     else
  574.       visual effect wipe left
  575.     end if
  576.     go to next card of this background
  577.   else
  578.     -- Copy this card to the next one
  579.     doMenu "Copy Card"
  580.     doMenu "Paste Card"
  581.     newCard
  582.   end if
  583. end mouseUp
  584.  
  585.  
  586.  
  587. -- part 21 (button)
  588. -- low flags: 00
  589. -- high flags: 2000
  590. -- rect: left=405 top=309 right=342 bottom=441
  591. -- title width / last selected line: 0
  592. -- icon id / first selected line: 19104 / 19104
  593. -- text alignment: 1
  594. -- font id: 0
  595. -- text size: 12
  596. -- style flags: 0
  597. -- line height: 16
  598. -- part name: Prev Slice
  599. ----- HyperTalk script -----
  600. on mouseDown
  601. end mouseDown
  602.  
  603. on mouseStillDown
  604. end mouseStillDown
  605.  
  606. on mouseUp
  607.   if the commandKey is up then
  608.     go to prev card
  609.   else
  610.     -- Make another card like this one
  611.     doMenu "Copy Card"
  612.     go prev
  613.     doMenu "Paste Card"
  614.     newCard
  615.   end if
  616. end mouseUp
  617.  
  618.  
  619.  
  620. -- part 22 (button)
  621. -- low flags: 00
  622. -- high flags: 0000
  623. -- rect: left=475 top=309 right=342 bottom=512
  624. -- title width / last selected line: 0
  625. -- icon id / first selected line: 20955 / 20955
  626. -- text alignment: 1
  627. -- font id: 0
  628. -- text size: 12
  629. -- style flags: 0
  630. -- line height: 16
  631. -- part name: Return
  632. ----- HyperTalk script -----
  633. on mouseDown
  634. end mouseDown
  635.  
  636. on mouseStillDown
  637. end mouseStillDown
  638.  
  639. on mouseUp
  640.   pop card
  641. end mouseUp
  642.  
  643.  
  644.  
  645. -- part 24 (button)
  646. -- low flags: 80
  647. -- high flags: 8002
  648. -- rect: left=15 top=320 right=338 bottom=69
  649. -- title width / last selected line: 0
  650. -- icon id / first selected line: 0 / 0
  651. -- text alignment: 1
  652. -- font id: 0
  653. -- text size: 12
  654. -- style flags: 0
  655. -- line height: 16
  656. -- part name: Add
  657. ----- HyperTalk script -----
  658. on mouseDown
  659. end mouseDown
  660.  
  661. on mouseStillDown
  662. end mouseStillDown
  663.  
  664. on mouseUp
  665.   global building
  666.   if the hilite of me is false then
  667.     put the short ID of this card into building
  668.     set the hilite of me to true
  669.   else
  670.     put empty into building
  671.     set the hilite of me to false
  672.   end if
  673. end mouseUp
  674.  
  675.  
  676.  
  677. -- part 26 (field)
  678. -- low flags: 01
  679. -- high flags: 0000
  680. -- rect: left=434 top=7 right=41 bottom=490
  681. -- title width / last selected line: 0
  682. -- icon id / first selected line: 0 / 0
  683. -- text alignment: 65535
  684. -- font id: 156
  685. -- text size: 24
  686. -- style flags: 0
  687. -- line height: 32
  688. -- part name: Order
  689.  
  690.  
  691. -- part 33 (button)
  692. -- low flags: 00
  693. -- high flags: 2000
  694. -- rect: left=369 top=309 right=342 bottom=406
  695. -- title width / last selected line: 0
  696. -- icon id / first selected line: 29848 / 29848
  697. -- text alignment: 1
  698. -- font id: 0
  699. -- text size: 12
  700. -- style flags: 0
  701. -- line height: 16
  702. -- part name: Help
  703. ----- HyperTalk script -----
  704. on mouseDown
  705. end mouseDown
  706.  
  707. on mouseStillDown
  708. end mouseStillDown
  709.  
  710. on mouseUp
  711.   global startCard
  712.   put the short ID of this card into startCard
  713.   go card "Builder Help"
  714. end mouseUp
  715.  
  716.  
  717.  
  718. -- part 34 (button)
  719. -- low flags: 00
  720. -- high flags: 2000
  721. -- rect: left=440 top=309 right=342 bottom=476
  722. -- title width / last selected line: 0
  723. -- icon id / first selected line: 7856 / 7856
  724. -- text alignment: 1
  725. -- font id: 0
  726. -- text size: 12
  727. -- style flags: 0
  728. -- line height: 16
  729. -- part name: Next Slice
  730. ----- HyperTalk script -----
  731. on mouseDown
  732. end mouseDown
  733.  
  734. on mouseStillDown
  735. end mouseStillDown
  736.  
  737. on mouseUp
  738.   set lockScreen to true
  739.   set cursor to watch
  740.   put field "Title" into startTitle
  741.   repeat until field "Title" is not startTitle and field "Title" is not empty
  742.     go to next card of this background
  743.   end repeat
  744. end mouseUp
  745.  
  746.  
  747.  
  748. -- part 42 (button)
  749. -- low flags: 80
  750. -- high flags: A002
  751. -- rect: left=298 top=320 right=338 bottom=366
  752. -- title width / last selected line: 0
  753. -- icon id / first selected line: 0 / 0
  754. -- text alignment: 1
  755. -- font id: 0
  756. -- text size: 12
  757. -- style flags: 0
  758. -- line height: 16
  759. -- part name: Detach
  760. ----- HyperTalk script -----
  761. on mouseDown
  762. end mouseDown
  763.  
  764. on mouseStillDown
  765. end mouseStillDown
  766.  
  767. on mouseUp
  768.   global selectList
  769.   if the number of lines of selectList < 2 then
  770.     answer "Shift-click 2 or more icons first." with OK
  771.   else
  772.     set cursor to watch
  773.     choose line tool
  774.     set pattern to 1 -- white
  775.     repeat with n = 2 to the number of lines in selectList
  776.       detach line n of selectList,line n-1 of selectList
  777.       detach line n-1 of selectList,line n of selectList
  778.       drag from the loc of button ID (line n of selectList) to the loc of button ID (line n-1 of selectList) with optionKey
  779.     end repeat
  780.     choose browse tool
  781.   end if
  782. end mouseUp
  783.  
  784. on detach a,b
  785.   repeat with n = 1 to the number of items of line 2 of the script of button ID a
  786.     if item n of line 2 of the script of button ID a is word 1 of the script of button ID b then
  787.       get the script of button ID a
  788.       delete item n of line 2 of it
  789.       set the script of button ID a to it
  790.     end if
  791.   end repeat
  792. end detach
  793.  
  794.  
  795.  
  796.  
  797. -- part 43 (button)
  798. -- low flags: 80
  799. -- high flags: A002
  800. -- rect: left=226 top=320 right=338 bottom=294
  801. -- title width / last selected line: 0
  802. -- icon id / first selected line: 0 / 0
  803. -- text alignment: 1
  804. -- font id: 0
  805. -- text size: 12
  806. -- style flags: 0
  807. -- line height: 16
  808. -- part name: Connect
  809. ----- HyperTalk script -----
  810. on mouseDown
  811. end mouseDown
  812.  
  813. on mouseStillDown
  814. end mouseStillDown
  815.  
  816. on mouseUp
  817.   global selectList
  818.   if the number of lines of selectList < 2 then
  819.     answer "Shift-click two or more icons first." with OK
  820.   else
  821.     set cursor to watch
  822.     choose line tool
  823.     set lineSize to 1
  824.     repeat with n = 2 to the number of lines in selectList
  825.       attach line n of selectList,line n-1 of selectList
  826.       attach line n-1 of selectList,line n of selectList
  827.       drag from the loc of button ID (line n of selectList) to the loc of button ID (line n-1 of selectList)
  828.     end repeat
  829.     choose browse tool
  830.   end if
  831. end mouseUp
  832.  
  833. on attach a,b
  834.   if word 1 of the script of button ID b is not in line 2 of the script of button ID a then
  835.     get the script of button ID a
  836.     put word 1 of the script of button ID b & "," before line 2 of it
  837.     set the script of button ID a to it
  838.   end if
  839. end attach
  840.  
  841.  
  842.  
  843.  
  844. -- part 44 (button)
  845. -- low flags: 00
  846. -- high flags: 0000
  847. -- rect: left=15 top=52 right=64 bottom=71
  848. -- title width / last selected line: 0
  849. -- icon id / first selected line: 0 / 0
  850. -- text alignment: 1
  851. -- font id: 0
  852. -- text size: 12
  853. -- style flags: 0
  854. -- line height: 16
  855. -- part name: 
  856. ----- HyperTalk script -----
  857. on mouseUp
  858.   go to card id 100625
  859. end mouseUp
  860.  
  861. on mouseDown
  862.   exit mouseDown
  863. end mouseDown
  864.  
  865. on mouseStillDown
  866.   exit mouseStillDown
  867. end mouseStillDown
  868.  
  869.  
  870.  
  871. -- part 48 (button)
  872. -- low flags: 00
  873. -- high flags: 0000
  874. -- rect: left=15 top=103 right=115 bottom=57
  875. -- title width / last selected line: 0
  876. -- icon id / first selected line: 0 / 0
  877. -- text alignment: 1
  878. -- font id: 0
  879. -- text size: 12
  880. -- style flags: 0
  881. -- line height: 16
  882. -- part name: 
  883. ----- HyperTalk script -----
  884. on mouseUp
  885.   go to card id 101006
  886. end mouseUp
  887.  
  888. on mouseDown
  889.   exit mouseDown
  890. end mouseDown
  891.  
  892. on mouseStillDown
  893.   exit mouseStillDown
  894. end mouseStillDown
  895.  
  896.  
  897.  
  898. -- part 49 (button)
  899. -- low flags: 00
  900. -- high flags: 0000
  901. -- rect: left=15 top=155 right=167 bottom=58
  902. -- title width / last selected line: 0
  903. -- icon id / first selected line: 0 / 0
  904. -- text alignment: 1
  905. -- font id: 0
  906. -- text size: 12
  907. -- style flags: 0
  908. -- line height: 16
  909. -- part name: 
  910. ----- HyperTalk script -----
  911. on mouseUp
  912.   go to card id 101184
  913. end mouseUp
  914.  
  915. on mouseDown
  916.   exit mouseDown
  917. end mouseDown
  918.  
  919. on mouseStillDown
  920.   exit mouseStillDown
  921. end mouseStillDown
  922.  
  923.  
  924.  
  925. -- part 50 (button)
  926. -- low flags: 00
  927. -- high flags: 0000
  928. -- rect: left=15 top=207 right=219 bottom=101
  929. -- title width / last selected line: 0
  930. -- icon id / first selected line: 0 / 0
  931. -- text alignment: 1
  932. -- font id: 0
  933. -- text size: 12
  934. -- style flags: 0
  935. -- line height: 16
  936. -- part name: 
  937. ----- HyperTalk script -----
  938. on mouseUp
  939.   go to card id 101803
  940. end mouseUp
  941.  
  942. on mouseDown
  943.   exit mouseDown
  944. end mouseDown
  945.  
  946. on mouseStillDown
  947.   exit mouseStillDown
  948. end mouseStillDown
  949.  
  950.  
  951.  
  952. -- part 51 (button)
  953. -- low flags: 00
  954. -- high flags: 0000
  955. -- rect: left=15 top=259 right=271 bottom=66
  956. -- title width / last selected line: 0
  957. -- icon id / first selected line: 0 / 0
  958. -- text alignment: 1
  959. -- font id: 0
  960. -- text size: 12
  961. -- style flags: 0
  962. -- line height: 16
  963. -- part name: 
  964. ----- HyperTalk script -----
  965. on mouseUp
  966.   go to card id 105423
  967. end mouseUp
  968.  
  969. on mouseDown
  970.   exit mouseDown
  971. end mouseDown
  972.  
  973. on mouseStillDown
  974.   exit mouseStillDown
  975. end mouseStillDown
  976.  
  977.  
  978.  
  979. -- part 52 (button)
  980. -- low flags: 00
  981. -- high flags: 2000
  982. -- rect: left=451 top=9 right=42 bottom=485
  983. -- title width / last selected line: 0
  984. -- icon id / first selected line: 19104 / 19104
  985. -- text alignment: 1
  986. -- font id: 0
  987. -- text size: 12
  988. -- style flags: 0
  989. -- line height: 16
  990. -- part name: Prev
  991. ----- HyperTalk script -----
  992. on mouseUp
  993.   if the commandKey is up then
  994.     -- do regular dissolve or wipe
  995.     if (field "Title" of prev card of this background) is field "Title" of this card then
  996.       visual effect dissolve
  997.     else
  998.       visual effect wipe right
  999.     end if
  1000.     go to prev card of this background
  1001.   else
  1002.     -- Copy this card to the next one
  1003.     doMenu "Copy Card"
  1004.     doMenu "Paste Card"
  1005.     newCard
  1006.   end if
  1007. end mouseUp
  1008.  
  1009.  
  1010.  
  1011. -- part 53 (button)
  1012. -- low flags: 80
  1013. -- high flags: A002
  1014. -- rect: left=73 top=320 right=338 bottom=122
  1015. -- title width / last selected line: 0
  1016. -- icon id / first selected line: 0 / 0
  1017. -- text alignment: 1
  1018. -- font id: 0
  1019. -- text size: 12
  1020. -- style flags: 0
  1021. -- line height: 16
  1022. -- part name: New
  1023. ----- HyperTalk script -----
  1024. on mouseDown
  1025. end mouseDown
  1026.  
  1027. on mouseStillDown
  1028. end mouseStillDown
  1029.  
  1030. on mouseUp
  1031.   doMenu "New Card"
  1032. end mouseUp
  1033.  
  1034.